<?php

class ContentList_Tree extends ContentList
{
	
	/**
	 * получить дерево из ContentListElement
	 * 
	 * @param object $rowset
	 * 
	 * @return Tree
	 */
	public static function getTreeFromRowset($rowset) {
				
		$tree = new Tree();
		
		/* @var $row Db_Row */
		foreach ($rowset as $row) {
			$id = $row->getId();
			$parentId = $row->getParentId();
			if (!$parentId) {
				$tree->addRootNodeId($id);
			}
			
			$data = ContentListElement::fromRow($row);
			
			$node = new TreeNode($id, $data);
			$tree->addNode($node);
			$parentNode = $tree->getNodeById($parentId);
			if ($parentNode) {
				$node->setLevel($parentNode->getLevel()+1);
				$parentNode->addChild($node);
			}
		}
		
		return $tree;
	}
}